var processCount = 0;
var type = $('#moduleInfo').data('type');
var table = $('#moduleInfo').data('table');
var rowstart = 0;
if ($('#rowstart').length)
{
    rowstart = parseInt($('#rowstart').val());
}
var highlight = 0;
if ($('.tab-pane.active').length)
{
    if ($('.highlight').length)
    {
        highlight = $('.tab-pane.active .highlight').length;
    }
}
else
{
    highlight = $('.highlight').length;
}
var ChuSo = new Array(' không ', ' một ', ' hai ', ' ba ', ' bốn ', ' năm ', ' sáu ', ' bảy ', ' tám ', ' chín ');
var Tien = new Array('', ' nghìn', ' triệu', ' tỷ', ' nghìn tỷ', ' triệu tỷ');
var jsonSort = $('#jsonSort').val();
var table_index = 0;

$(document).ready(function() {

    $('#sidebar .dropdown-toggle').click(function() {
        if ($(this).next().is(':hidden')) {
            $(this).next().slideDown();
        }
        else {
            $(this).next().slideUp();
        }
    });

    $('.navbar-toggle').click(function() {
        $('#sidebar').toggleClass('in');
    });

    $('#skinsDiv a').click(function(e) {
        $('.skins-box').toggleClass('in');
        e.preventDefault();
    });

    $('.filter_cat .caption, .filter_cat .glyphicons').click(function(e) {
        $('.filter_cat_list').toggleClass('in');
        e.preventDefault();
    });

    $('#sidebar, .cat_treeview').bind('mousewheel DOMMouseScroll', function(e) {
        var e0 = e.originalEvent, delta = e0.wheelDelta || -e0.detail;
        this.scrollTop += (delta < 0 ? 1 : -1) * 30;
        e.preventDefault();
    });

    $('#main-content').click(function() {
        $('#sidebar').removeClass('in').addClass('collapse');
        $('.skins-box, .filter_cat_list').removeClass('in');
    });

    $('#main-content').scroll(function() {
        if ($(this).scrollTop() > 10) {
            $('#btn-scrollup').fadeIn()
        } else {
            $('#btn-scrollup').fadeOut()
        }
    });

    $(window).resize(function() {
        $('.addDiv').css({
            top: ($(window).height() - $('.addDiv').height()) / 2 - 32 + 'px',
            left: ($(window).width() - $('.addDiv').width()) / 2  - 20 + 'px'
        });
    });


    $('#btn-scrollup').click(function() {
        $('#main-content').animate({
            scrollTop: 0
        }, 600);
        return false
    });

    $('#logoutLnk').click(function() {
        $.alerts.confirm('Bạn có chắc sẽ<br />thoát khỏi hệ thống Quản lý!', 'Xác nhận đăng xuất', function(r) {
            if (r == true)
            {
                window.location = site_url + 'dashboard/logout';
            }
        });
    });

    $('.skins-box .skin').click(function() {
        var skin = $(this).data('skin');
        if (!$('body').hasClass(skin))
        {
            $('body').attr('class', skin);
            $.cookie('body_skin', skin);
        }
        return false;
    });

    if (typeof cookie_not_handle_user_settings != 'undefined' && cookie_not_handle_user_settings == true) {
        return;
    }

    $('a[href^=#]').click(function(e) {
        e.preventDefault()
    });

    $('.nice-scroll, .slimScroll').slimScroll({
        touchScrollStep: 30
    });

    $('#sidebar a.dropdown-toggle').click(function() {
        if (!$('#sidebar').hasClass('in') && !$('#sidebar').hasClass('expansion'))
        {
            var e = $(this).next('.submenu');
            var t = $(this).children('.arrow');
            $('.dropdown-toggle b.arrow').attr('class', 'arrow fa fa-angle-right');
            $('.submenu').not(e).slideUp();
            t.attr('class', 'arrow fa fa-angle-down');
            if (e.is(':hidden')) {
                e.slideToggle();
            }
        }
    });

    $('#sidebar.sidebar-collapsed #sidebar-collapse > i').attr('class', 'fa fa-angle-double-right');

    $('#sidebar-collapse').click(function() {
        $('#sidebar').toggleClass('sidebar-collapsed');
        if ($('#sidebar').hasClass('sidebar-collapsed')) {
            $('#sidebar-collapse > i').attr('class', 'fa fa-angle-double-right');
            $.cookie('sidebar_collapsed', 1);
            $('#sidebar ul.nav-list').parent('.slimScrollDiv').replaceWith($('#sidebar ul.nav-list'))
        } else {
            $('#sidebar-collapse > i').attr('class', 'fa fa-angle-double-left');
            $.cookie('sidebar_collapsed', 0);
        }
    });

    $('#sidebar').on('show.bs.collapse', function() {
        if ($(this).hasClass('sidebar-collapsed')) {
            $(this).removeClass('sidebar-collapsed')
        }
    });

    $('#sidebar .nav > li.active > a > .arrow').removeClass('fa-angle-right').addClass('fa-angle-down');

    if (jQuery().pwstrength) {
        $('input[data-action="pwindicator"]').pwstrength()
    } 

    if ($('a.loading').length)
    {
        $('a.loading').click(showLoading);
    }

    if ($('#closeForm').length)
    {
        $('#closeForm').click(function() {
            closeopaDiv();
            return false;
        });
    }

    if ($('tr .highlight').length)
    {
        $('tr .highlight').click(function() {
            $('tr .highlight').removeClass('selected');
            $(this).addClass('selected');
        });
    }

    if ($('#backBtn').length)
    {
        $('#backBtn').click(function() {
            window.location = $(this).data('back');
            return false;
        });
    }

    if ($('#submitBtn').length)
    {
        $('#submitBtn').click(function() {
            $('#updateFrm').submit();
        });
    }

    if ($('form').length)
    {
        checkUpdateFrm();
    }

    $('.tooltip').tooltip({
        placement: 'bottom'
    });

    if ($('.textarea').length)
    {
        $('.textarea').wysihtml5();
    }

    if ($('.delImageIcon').length)
    {
        $('.delImageIcon').click(function() {
            var ele = $(this);
            var type = $('#moduleInfo').data('type');
            $.alerts.confirm('Bạn có chắc sẽ xóa tệp tin ' + type.toLocaleLowerCase() + '!', 'Xác nhận xóa tệp tin', function(r) {
                if (r == true)
                {
                    var field = ele.data('field');
                    var id = ele.data('id');
                    var previewImg = ele.parent().find('.preview_img');
                    if (table == 'customers')
                    {
                        table = 'customergroups';
                    }
                    if (id == '' || id == null) id = $('#id').val();
                    showProcess(1);
                    $.ajax({
                        url: site_url + 'ajax/delete_image',
                        type: 'POST',
                        cache: false,
                        data: {
                            id: id,
                            field: field,
                            table: table
                        },
                        success: function(string) {
                            if (string == 1)
                            {
                                previewImg.fadeOut(function() {
                                    previewImg.prev('i').fadeIn();
                                    ele.fadeOut(function() {
                                        $(this).remove();
                                    });
                                });
                                showNoti('Tệp tin: ảnh ' + type.toLocaleLowerCase(), 'Xóa hình tệp tin thành công', 'Ok');
                            }
                            else
                            {
                                showNoti('Tệp tin: ảnh ' + type.toLocaleLowerCase(), 'Xóa hình tệp tin thất bại', 'Err');
                            }
                        }
                    });
                }
            });
            return false;
        });
    }

    if ($('.updateLink').length)
    {
        $('.updateLink').click(function() {
            var id = $(this).data('id');
            if (id == null)
            {
                $('#submitBtn span').text('Thêm mới');
                $('input[type="text"], input[type="hidden"]').not('[name="token"]').val('');
                $("#preview_icon, #icon-del").hide();
            }
            else
            {
                $('#submitBtn span').text('Cập nhập');
                $('.id').val(id);
                $('.rowstart').val($('#rowstart').val());
                if ($('.tab-content').length)
                {
                    $('.tab-pane.active .textData.' + id).each(function() {
                        var eleId = $(this).data('field');
                        var eleVal = $(this).val();
                        if ($('#' + eleId).length)
                        {
                            $('#' + eleId).val(eleVal);
                        }
                        if ($('.' + eleId).length)
                        {
                            $('.' + eleId).html(eleVal);
                        }
                    });
                    $('.tab-pane.active .radioData.' + id + ', .checkData.' + id).each(function() {
                        var eleId = $(this).data('field');
                        var eleVal = $(this).val();
                        $('#' + eleId + eleVal).prop('checked', true);
                    });
                    $('.tab-pane.active .selectData.' + id).each(function() {
                        var eleId = $(this).data('field');
                        var eleVal = $(this).val();
                        $('#' + eleId + eleVal).prop('selected', true);
                    });
                    $('.tab-pane.active .iconData.' + id).each(function() {
                        var eleId = $(this).data('field');
                        var eleDir = $(this).data('dir');
                        var eleVal = $(this).val();
                        $('#' + eleId).val(eleVal);
                        if (eleVal != '')
                        {
                            $('#icon-noimg').hide();
                            $('#preview_icon').attr('src', eleDir + 'thumbs/' + eleVal);
                            $("#preview_icon, #icon-del").fadeIn(1500);
                            $('#icon-del').attr('data-id', id);
                        }
                        else
                        {
                            $("#preview_icon, #icon-del").hide();
                            $('#icon-noimg').fadeIn(1500);
                        }
                    });
                    if ($('.tab-pane.active .editor').length)
                    {
                        if (!$('.tab-pane.active .wysihtml5-toolbar').length)
                        {
                            $('.tab-pane.active .editor').wysihtml5();
                        }
                    }
                }
                else
                {
                    $('.textData.' + id).each(function() {
                        var eleId = $(this).data('field');
                        var eleVal = $(this).val();
                        if ($('#' + eleId).length)
                        {
                            $('#' + eleId).val(eleVal);
                        }
                        if ($('.' + eleId).length)
                        {
                            $('.' + eleId).html(eleVal);
                        }
                    });
                    $('.radioData.' + id + ', .checkData.' + id).each(function() {
                        var eleId = $(this).data('field');
                        var eleVal = $(this).val();
                        $('#' + eleId + eleVal).prop('checked', true);
                    });
                    $('.selectData.' + id).each(function() {
                        var eleId = $(this).data('field');
                        var eleVal = $(this).val();
                        $('#' + eleId + eleVal).prop('selected', true);
                    });
                    $('.iconData.' + id).each(function() {
                        var eleId = $(this).data('field');
                        var eleDir = $(this).data('dir');
                        var eleVal = $(this).val();
                        $('#' + eleId).val(eleVal);
                        if (eleVal != '')
                        {
                            $('#icon-noimg').hide();
                            $('#preview_icon').attr('src', eleDir + 'thumbs/' + eleVal);
                            $("#preview_icon, #icon-del").fadeIn(1500);
                            $('#icon-del').attr('data-id', id);
                        }
                        else
                        {
                            $("#preview_icon, #icon-del").hide();
                            $('#icon-noimg').fadeIn(1500);
                        }
                    });
                    if ($('.editor').length)
                    {
                        if (!$('.wysihtml5-toolbar').length)
                        {
                            $('.editor').wysihtml5();
                        }
                    }
                }
            }
            $('#updateFrm1 #submitBtn').click(function() {
                $('#updateFrm1').submit();
            });
            $('#updateFrm2 #submitBtn').click(function() {alert(1)
                $('#updateFrm2').submit();
            });
            var tabId = $('.tabId').val();
            if ($('.modal-dialog').length)
            {
                if ($('#myModal'+tabId).length)
                {
                    $('#myModal'+tabId).modal('show');
                }
                else
                {
                    $('#myModal').modal('show');
                }
            }
            else
            {
                $('.addDiv').css({
                    top: ($(window).height() - $('.addDiv').height()) / 2 - 32 + 'px',
                    left: ($(window).width() - $('.addDiv').width()) / 2 - 32 + 'px'
                });
                $('.opaDiv').fadeIn('fast');
                $('.addDiv').fadeIn('fast');
            }
            checkUpdateFrm();
        });
    }

    if ($('.div_admincats .rights div').not('.disabled').length)
    {
        $('.div_admincats .rights div').not('.disabled').bind('click', function() {
            if ($(this).find('i').hasClass('gray')) {
                $(this).find('i').removeClass('gray').addClass('red');
                $(this).find('input[data-type="1"]').prop('checked', true);
                $(this).find('input[data-type="0"]').prop('checked', false);
            } else {
                $(this).find('i').removeClass('red').addClass('gray');
                $(this).find('input[data-type="1"]').prop('checked', false);
                $(this).find('input[data-type="0"]').prop('checked', true);
            }
        });
    }

    if ($('.addDiv').length)
    {
        $('.addDiv').css({
            top: ($(window).height() - $('.addDiv').height() - 100) / 2 + 'px',
            left: ($(window).width() - $('.addDiv').width() - 10) / 2 + 'px'
        });
    }

    if ($('.note_orders').length)
    {
        $('.note_orders').change(function() {
            var id = $(this).data('id');
            var field = $(this).data('field');
            var note = $(this).val();
            showProcess();
            $.ajax({
                url: site_url + 'ajax/change_status',
                type: 'POST',
                cache: false,
                data: {
                    id: id,
                    table: table,
                    field: field,
                    status: note
                },
                success: function(string) {
                    showNoti(type + ': ' + $('tr#' + id).attr('name'), 'Ghi chú đơn hàng thành công', 'Ok');
                }
            });
            return false;
        });
    }

    if ($('.changeStatus').not('.disabled').length)
    {
        $('.changeStatus').not('.disabled').click(function() {
            var ele = $(this);
            var field = ele.data('field');
            var name = ele.data('name');
            var id = ele.data('id');
            var one_select = 0;
            if (ele.hasClass('unchecked'))
            {
                ele.removeClass('unchecked').addClass('check');
                status = 1;
            }
            else
            {
                ele.removeClass('check').addClass('unchecked');
                status = 0;
            }
            if (ele.hasClass('one_select'))
            {
                $('.one_select').not('[data-id="' + id + '"]').removeClass('check').addClass('unchecked');
                one_select = 1;
            }
            showProcess(1);
            $.ajax({
                url: site_url + 'ajax/change_status',
                type: 'POST',
                cache: false,
                data: {
                    id: id,
                    table: table,
                    field: field,
                    status: status,
                    one_select: one_select
                },
                success: function(string) {
                    if (status == 1)
                    {
                        showNoti((type ? type + ': ' : '') + $('tr#' + id).attr('name'), 'Đánh dấu ' + (name ? name + ' ' : '') + 'thành công', 'Ok');
                    }
                    else
                    {
                        showNoti((type ? type + ': ' : '') + $('tr#' + id).attr('name'), 'Bỏ đánh dấu ' + (name ? name + ' ' : '') + 'thành công', 'Ok');
                    }
                }
            });
        });
    }

    if ($('.footer_col').length)
    {
        $('.footer_col').change(function() {
            var id = $(this).data('id');
            var value = $(this).val();
            var field = 'footer_colum';
            $.ajax({
                url: site_url + 'ajax/change_status',
                type: 'POST',
                cache: false,
                data: {
                    id: id,
                    table: table,
                    field: field,
                    status: value
                },
                success: function(string) {
                    showNoti(type + ': ' + $('tr#' + id).attr('name'), 'Cập nhập vị trí footer thàng công', 'Ok');
                }
            });
        });
    }

    if ($('#code').length)
    {
        $('#code').change(function() {
            var code = $(this).val();
            var id = $('#id').val();
            if (id == '' || id == null) id = $('.id').val();
            if (code.trim() == '')
            {
                return false;
            }
            showProcess();
            $.ajax({
                url: site_url + 'ajax/check_code',
                type: 'POST',
                cache: false,
                data: {
                    code: code,
                    table: table,
                    id: id
                },
                success: function(string) {
                    if (string.trim() == '0')
                    {
                        $('#code').css({
                            'border-color': '#3eb23e'
                        });
                        showNoti('Bạn có thể sử dụng mã ' + type.toLowerCase() + ' này!', 'Kiểm tra mã ' + type.toLowerCase(), 'Ok');
                        $('#errCode').val('1');
                    }
                    else
                    {
                        $('#code').css({
                            'border-color': '#f79879'
                        });
                        showNoti('Bạn không thể sử dụng mã ' + type.toLowerCase() + ' này!', 'Mã ' + type.toLowerCase() + ' đã có trong CSDL', 'Err');
                        $('#errCode').val('');
                    }
                }
            });
        });
    }

    if (($('#act').val() == 'products' || $('#act').val() == 'projects') && $('#do').val() == 'update') {
        $('.btnSigLogo').click(function() {
            var id = $(this).data('id');
            var name = $('#name_vn').val();
            var type_logo = $(this).data('type');
            var thumb_w = $(this).data('thumb-w');
            var thumb_h = $(this).data('thumb-h');
            var gallery_w = $(this).data('gallery-w');
            var gallery_h = $(this).data('gallery-h');
            var pos_logo = 0;

            if ($('.delImageIcon').length == 0)
            {
                showNoti('Không có ảnh để thêm logo!', 'Lỗi thao tác', 'War');
                return false;
            }
            if ($('#siglogo_color').val() == '')
            {
                if (type_logo == 1) showErrOfField('siglogo_color', 'siglogo_color', 2000);
                else showErrOfField('siglogo_gray', 'siglogo_gray', 2000);
                return false;
            }
            if (type_logo == 1)
            {
                pos_logo = $('#siglogo_color').val();
                $('#btnSigLogoColor').val('Đang xử lý ...');
                $('#btnSigLogoColor').attr('disabled', true);
            }
            else
            {
                pos_logo = $('#siglogo_gray').val();
                $('#btnSigLogoGray').val('Đang xử lý ...');
                $('#btnSigLogoGray').attr('disabled', true);
            }
            showProcess(1);
            $.ajax({
                url: site_url + 'ajax/sig_logo',
                type: 'POST',
                cache: false,
                data: {
                    id: id,
                    type_logo: type_logo,
                    table: table,
                    thumb_w: thumb_w,
                    thumb_h: thumb_h,
                    gallery_w: gallery_w,
                    gallery_h: gallery_h,
                    pos_logo: pos_logo
                },
                success: function(string) {
                    if (type_logo == 1)
                    {
                        $('#btnSigLogoColor').val('Thêm logo');
                        $('#btnSigLogoColor').attr('disabled', false);
                    }
                    else
                    {
                        $('#btnSigLogoGray').val('Thêm logo');
                        $('#btnSigLogoGray').attr('disabled', false);
                    }
                    if (string == '0')
                    {
                        showNoti(type + ': ' + name, 'Thêm logo vào ảnh ' + type + ' thất bại', 'Err');
                    }
                    else
                    {
                        showNoti(type + ': ' + name, 'Thêm logo vào ảnh ' + type + ' thành công', 'Ok');
                        $('.preview_img').each(function() {
                            var img = $(this).attr('src');
                            $(this).attr('src', img + '?timestamp=' + new Date().getTime());
                        });
                    }
                }
            });
            return false;
        });
    }

    $('.inputPrice').not('.disabled').change(function() {
        var price = $(this).val();
        var id = $(this).data('id');
        var field = $(this).data('field');
        if (field == '' || field == null) field = 'gia1';
        price = price.replace(/,/g, '');
        if (price != "") {
            if (isNaN(price)) {
                return false;
            }
            showProcess(1);
            $.ajax({
                url: site_url + 'ajax/update_price',
                type: 'POST',
                cache: false,
                data: {
                    id: id,
                    price: price,
                    table: table,
                    field: field
                },
                success: function(price) {
                    if (price == '') {
                        showNoti(type + ': ' + $('tr#' + id).attr('name'), 'Cập nhập giá sản phẩm thất bại', 'Err');
                    } else {
                        $('input[data-id="' + id + '"]').val(price);
                        showNoti(type + ': ' + $('tr#' + id).attr('name'), 'Cập nhập giá sản phẩm thàng công', 'Ok');
                    }
                }
            });
        }
    });

    if (jQuery().treeview && $('.cat_treeview').length)
    {
        $('.cat_treeview').treeview();
    }

    if ($('.selectImage').length)
    {
        $('.selectImage').each(function() {
            changeImage($(this));
        });
    }

    if ($('.image').length)
    {
        $('.image').click(function() {
            $(this).prev('.selectImage').trigger('click');
        });
    }

    if ($('.toggleInput.disabled').length)
    {
        $('.toggleInput.disabled').click(function() {
            return false;
        });
    }

    if ($('.toggleInput').not('.disabled').length)
    {
        $('.toggleInput').not('.disabled').change(function() {
            var id = $(this).data('id');
            var status = $(this).is(':checked') ? '1' : '0';
            var field = $(this).data('field');
            if (id == '' || id == null) id = $('#id').val();
            $.ajax({
                url: site_url + 'ajax/change_status',
                type: 'POST',
                cache: false,
                data: {
                    id: id,
                    table: table,
                    field: field,
                    status: status
                },
            });
        });
    }

    if ($('#act').val() == 'config' && $('#do').val() == 'update')
    {
        $('#type').change(function() {
            var type = $(this).val();
            var value = $('[name="value"]').val();
            if (value == '' || value == undefined)
            {
                value = $('input[type="radio"][checked="checked"]').val();
            }
            if (type == 0)
            {
                $('#td_value').empty();
                $('#td_value').append('<input type="text" name="value" id="value" value="' + value + '" style="width: 240px" />');
            }
            if (type == 1)
            {
                $('#td_value').empty();
                $('#td_value').append('<textarea class="tar_cfg" name="value" id="value">' + value + '</textarea>');
            }
            if (type == 2)
            {
                $('#td_value').empty();
                $('#td_value').append("<ul class='css3-radios'><li><label for='value1'><input name='value' id='value1' type='radio' value='1'" + (value == 1 || value == '' ? " checked=checked" : "") + " /><span>Có</span></label></li><li><label for='value0'><input name='value' id='value0' type='radio' value='0'" + (value == '0' ? " checked=checked" : "") + " /><span>Không</span></label></li></ul>");
            }
        });
    }

    if ($('#do').val() != 'compose' && $('#do').val() != 'product' && $('#do').val() != 'select_product' && $('#act').val() != 'print_barcode')
    {
        $('.checkAll').on('change', function() {
            if ($('.tab-content').length)
            {
                var tabId = $('.tabId').val();
                if ($('#tabs-' + tabId + ' .cb-element:not(:disabled)').length)
                {
                    $('#tabs-' + tabId + ' .cb-element:not(:disabled)').prop('checked', $(this).is(':checked'));
                    if ($(this).is(':checked'))
                    {
                        $('#tabs-' + tabId + ' .cb-element:not(:disabled)').prop('checked', true);
                        $('.highlightNoClick').addClass('selected');
                    }
                    else
                    {
                        $('#tabs-' + tabId + ' .cb-element').prop('checked', false);
                        $('.highlightNoClick').removeClass('selected');
                    }
                    updateSelItemNum();
                }
            }
            else
            {
                if ($('.cb-element:not(:disabled)').length)
                {
                    $('.cb-element:not(:disabled)').prop('checked', $(this).is(':checked'));
                    if ($(this).is(':checked'))
                    {
                        $('.cb-element:not(:disabled)').prop('checked', true);
                        $('.highlightNoClick').addClass('selected');
                    }
                    else
                    {
                        $('.cb-element').prop('checked', false);
                        $('.highlightNoClick').removeClass('selected');
                    }
                    updateSelItemNum();
                }
            }
        });

        if ($('.cb-element').length)
        {
            if ($('.tab-content').length)
            {
                var tabId = $('.tabId').val();
                if ($('#tabs-' + tabId + ' .cb-element').length == $('#tabs-' + tabId + ' .cb-element:checked').length && $('#tabs-' + tabId + ' .cb-element').length)
                {
                    $('#tabs-' + tabId + ' .checkAll').prop({
                        checked: true,
                        indeterminate: false
                    });
                }
            }
            else
            {
                if ($('.cb-element').length == $('.cb-element:checked').length && $('.cb-element').length)
                {
                    $('.checkAll').prop({
                        checked: true,
                        indeterminate: false
                    });
                }
            }
            $('.cb-element').on('change', updateSelItemNum);
            updateSelItemNum();
        }
    }

    if ($('.delRestoreLink .bin').length || $('.delRestoreLink .refresh').length)
    {
        $('#cmdBtnDelRestore').show();
    }
    else
    {
        $('#cmdBtnDelRestore').hide();
    }

    if ($('#cmdBtnDelRestore').length)
    {
        $('#cmdBtnDelRestore').click(function() {
            var mode = $(this).find('.icon').hasClass('refresh') ? 'restore' : 'del';
            var numItem = $('.cb-element:checked').length;
            $.alerts.confirm('Bạn có chắc sẽ ' + (mode == 'del' ? 'xóa' : 'khôi phục') + '?<br /><b>' + numItem + ' mục đã chọn</b>', 'Xác nhận ' + (mode == 'del' ? 'xóa' : 'khôi phục'), function(r) {
                if (r == true)
                {
                    showProcess();
                    $('.cb-element:checked').each(function() {
                        var id = $(this).val();
                        var name = $('tr#' + id).attr('name');
                        var table = $('#moduleInfo').attr('data-table');
                        if (name == undefined) name = $('[data-name="'+ id + '"]').text();
                        setTimeout(function() {
                            del_restore(table, id, mode, name, 0);
                        }, 150);
                    });
                    showNoti(numItem + ' mục đã chọn', (mode == 'del' ? 'Xóa' : 'Khôi phục') + ' thành công', 'Ok');
                    $('.commandDiv').animate({
                        top: '-49px'
                    }).hide();
                    $('.checkAll').prop({
                        checked: false,
                        indeterminate: false
                    });
                }
            });
            return false;
        });
    }

    if ($('#cmdBtnRemove').length)
    {
        $('#cmdBtnRemove').click(function() {
            var numItem = $('.cb-element:checked').length;
            $.alerts.confirm('Bạn có chắc sẽ xóa vĩnh viễn?<br /><b>' + numItem + ' mục đã chọn</b><br /><i>(Sẽ không khôi phục được!)</i>', 'Xác nhận Xóa', function(r) {
                if (r == true)
                {
                    showProcess();
                    $('.cb-element:checked').each(function() {
                        var id = $(this).val();
                        var name = $('tr#' + id).attr('name');
                        var table = $('#moduleInfo').attr('data-table');
                        if (name == undefined) name = $('[data-name="'+ id + '"]').text();
                        setTimeout(function() {
                            remove(table, id, name, 0);
                        }, 150);
                    });
                    showNoti(numItem + ' mục đã chọn', 'Xóa vĩnh viễn thành công', 'Ok');
                    $('.commandDiv').animate({
                        top: '-49px'
                    }).hide();
                    $('.checkAll').prop({
                        checked: false,
                        indeterminate: false
                    });
                }
            });
            return false;
        });
    }

    if ($('.delRestoreLink').length)
    {
        $('.delRestoreLink').click(function() {
            var id = $(this).data('id');
            var t = $(this).data('table');
            var name = $('tr#' + id).attr('name');
            if (name == undefined) name = $('[data-name="'+ id + '"]').text();
            var mode = 'del';
            if ($('.delRestoreLink[data-id="' + id + '"] .refresh').length > 0) mode = 'restore';
            $.alerts.confirm('Bạn có chắc sẽ ' + (mode == 'del' ? 'xóa' : 'khôi phục') + ' ' + (type ? '?<br />' + type + ' <b>' + name + '</b>' : 'mục này?<br />'), 'Xác nhận ' + (mode == 'del' ? 'xóa' : 'khôi phục') + '', function(r) {
                if (r == true) del_restore(t ? t : table, id, mode, name);
            });
        });
    }

    if ($('.removeLink').length)
    {
        $('.removeLink').click(function() {
            var id = $(this).data('id');
            var t = $(this).data('table');
            var name = $('tr#' + id).attr('name');
            if (name == undefined) name = $('[data-name="'+ id + '"]').text();
            $.alerts.confirm('Bạn có chắc sẽ xóa vĩnh viễn ' + (type ? '?<br />' + type + ' ' : 'mục này?<br />') + '<b>' + name + '</b><br /><i>(Sẽ không khôi phục được!)</i>', 'Xác nhận xóa', function(r) {
                if (r == true) remove(t ? t : table, id, name);
            });
        });
    }

    if ($('#tags').length) {
        $('#tags').tagsInput({
            width: 'auto'
        });
    }

    if ($('.admincat-div').length)
    {
        $('.admincat-div').click(function() {
            $('.admincat-div').removeClass('active');
            $(this).addClass('active');
        });
    }

    if ($('#act').val() == 'interfaces')
    {
        $('#cat').change(function() {
            var cat = $(this).val();
            $('tr.showhide').hide();
            if (cat == 1) $('#fr_des, .fr_images').fadeIn();
            if (cat == 1 || cat == 3) $('#fr_url').fadeIn();
            if (cat == 2) $('#fr_color, #fr_bg_repeat, #fr_css_ele').fadeIn();
            if (cat == 3) $('#fr_target, #fr_sort').fadeIn();
            if (cat == 0 || cat == 1 || cat == 3) $('#fr_size, #fr_file').fadeIn();
            if (cat == 4) $('#fr_css_ele, #fr_color').fadeIn();
        });
    }

    if ($('#from').length)
    {
        var dateFormat = $('#from').data('format');
        if (dateFormat == undefined) dateFormat = 'yy-mm-dd';
        $('#from').datepicker({
            defaultDate: '+1w',
            changeMonth: true,
            changeYear: true,
            numberOfMonths: 1,
            dateFormat: dateFormat,
            onSelect: function(selectedDate) {
                if ($('#to').length) $('#to').datepicker('option', 'minDate', selectedDate);
            }
        });
    }

    if ($('#to').length)
    {
        var dateFormat = $('#to').data('format');
        if (dateFormat == undefined) dateFormat = 'yy-mm-dd';
        $('#to').datepicker({
            defaultDate: '+1w',
            changeMonth: true,
            changeYear: true,
            numberOfMonths: 1,
            dateFormat: dateFormat,
            onSelect: function(selectedDate) {
                if ($('#from').length) $('#from').datepicker('option', 'maxDate', selectedDate);
            }
        });
    }

    if ($('#date_added').length)
    {
        var dateFormat = $('#date_added').data('format');
        if (dateFormat == undefined) dateFormat = 'yy-mm-dd';
        $('#date_added').datetimepicker({
            defaultDate: '+1w',
            changeMonth: true,
            changeYear: true,
            numberOfMonths: 1,
            dateFormat: dateFormat
        });
    }

    if ($('#datetime_from').length)
    {
        var dateFormat = $('#datetime_from').data('format');
        if (dateFormat == undefined) dateFormat = 'yy-mm-dd';
        $('#datetime_from').datetimepicker({
            defaultDate: '+1w',
            changeMonth: true,
            changeYear: true,
            numberOfMonths: 1,
            dateFormat: dateFormat,
            onSelect: function(selectedDate) {
                if ($('#datetime_to').length > 0) $('#datetime_to').datepicker('option', 'minDate', selectedDate);
            }
        });
    }

    if ($('#datetime_to').length)
    {
        var dateFormat = $('#datetime_to').data('format');
        if (dateFormat == undefined) dateFormat = 'yy-mm-dd';
        $('#datetime_to').datetimepicker({
            defaultDate: '+1w',
            changeMonth: true,
            changeYear: true,
            numberOfMonths: 1,
            dateFormat: dateFormat,
            onSelect: function(selectedDate) {
                if ($('#datetime_from').length > 0) $('#datetime_from').datepicker('option', 'maxDate', selectedDate);
            }
        });
    }

    if ($('.datetime').length)
    {
        $('.datetime').datepicker({
            defaultDate: '+1w',
            changeMonth: true,
            changeYear: true,
            numberOfMonths: 1,
            dateFormat: 'yy-mm-dd'
        });
    }

    if ($('.date').length)
    {
        $('.date').datepicker({
            yearRange: "c-60:c+1",
            defaultDate: '+1w',
            changeMonth: true,
            changeYear: true,
            numberOfMonths: 1,
            dateFormat: 'yy-mm-dd'
        });
    }

    if ($('.submitBtn.util_table').length)
    {
        $('.submitBtn.util_table').click(function() {
            var op = $(this).data('op');
            table_index = 0;
            $('.status_mes').hide();
            $('.status_mes div span').text('');
            $('.highlight .status').hide();
            util_table(op);
        });
    }

    if ($('.filter_cat input').length)
    {
        $('.filter_cat input').change(function() {
            $.cookie('filter_cat', $(this).val());
            setTimeout(function() {
                window.location = window.location;
            }, 1000);
        });
    }

    if ($('#fileuploader').length)
    {
        var dir = $('#fileuploader').data('dir');
        var thumb_w = $('#fileuploader').data('thumb-w');
        var thumb_h = $('#fileuploader').data('thumb-h');
        var gallery_w = $('#fileuploader').data('gallery-w');
        var gallery_h = $('#fileuploader').data('gallery-h');
        var uploadObj = $('#fileuploader').uploadFile({
            url: site_url + 'ajax/ajax_upload_image',
            fileName: 'myfile',
            formData: {
                dir : dir,
                thumb_w: thumb_w,
                thumb_h: thumb_h,
                gallery_w: gallery_w,
                gallery_h: gallery_h,
                fileName : $('#name_vn').val()
            },
            allowedTypes: 'jpg,png,gif',
            onSubmit: function(files)
            {
                if ($('input[data-file="' + files + '"]').length)
                {
                    return false;
                }
            },
            onSuccess: function(files,data,xhr)
            {
                showImage(files, data);
                $('.image-wrap.fl i.remove').click(function() {
                    $(this).parent().next().fadeOut();
                    $(this).parent().fadeOut(function() {
                        $(this).remove();
                    });
                });
            }
        });
    }

    $('.image-wrap.fl i.remove').click(function() {
        $(this).parent().fadeOut(function() {
            $(this).remove();
        });
    });

    $('.open-chirld').click(function() {
        var id = $(this).parent().parent().attr('id');
        if ($(this).hasClass('folder_open')) {
            $(this).removeClass('folder_open').addClass('folder_closed');
        } else {
            $(this).removeClass('folder_closed').addClass('folder_open');
        }
        $('tr.' + id).toggle();
    });

    $('.money').bind('keyup keydown', function() {
        var val = $(this).val();
        $(this).val(accounting.formatMoney(val, '', 0));
    });

    $('.btn-orderprint').click(function() {
        var code = $(this).data('code');
        var thanhtoan = $(this).data('thanhtoan');
        var url_print = site_url + 'sales/prints/' + code + '?thanhtoan=' + thanhtoan;
        $('#prints').load(url_print);
        window.print();
    });

});

var formHasChanged = false;

$(document).on('keyup keydown', 'form input, form select, form textarea', function (e) {
    formHasChanged = true;
});

$(document).ready(function () {
    $('form').submit(function(){
        window.onbeforeunload = null;
    });

    window.onbeforeunload = function (e) {
        if (formHasChanged) {
            var message = 'Có những thay đổi chưa được lưu trên trang này. Nếu bạn rời khỏi trang này, bạn sẽ bị mất thông tin.', e = e || window.event;
            if (e) {
                e.returnValue = message;
            }
            return message;
        }
    }
});

function showLoading()
{
    $('.notiLoading').css({
        'width': 80
    });
    $('.notiLoading').slideDown('fast');
}

function hideLoading()
{
    $('.notiLoading').slideUp('slow');
}

function showProcess(process)
{
    if (process == null)
        processCount = processCount + 1;
    else
        processCount = process;
    $('.notiLoading').html('Đang xử lý... <span id="processCount">' + processCount + '</span> tác vụ');
    $('.notiLoading').slideDown('fast');
}

function showNoti(id, mes, mode)
{
    processCount = processCount - 1;
    if (processCount > 0) $('#processCount').html(processCount);
    else
    {
        $('.notiLoading').fadeOut('slow', function() {
            $('.notiLoading').html('Đang tải...');
        });
    }
    html = '';
    html += '<b>' + mes + '</b>';
    if (!isNaN(id)) html +=  (id != '' ? '<br /><span class="mes-text">ID: ' + id + '</span>' : '');
    else if (id) html += (id != '' ? '<br /><span class="mes-text">' + (id.split(':')[1] != '' ? id.split(':')[0] : id.split(':')[0]) + (id.split(':')[1] ? ': ' + id.split(':')[1] : '') + '</span>' : '');
    html += '<img class="close" src="img/icon_close.gif" width="13" height="13" border="0" onClick="$(this).parent().hide()" />';
    $('#updateMes').append('<div class="updateMes updateMes' + mode +'">'+ html + '</div>');
    $('#updateMes').show();
    $('.updateMes').show(0).delay(5000).fadeOut('slow', function() {
        $(this).remove();
    });
}

function numberWithCommas(x)
{
    x = x.toString();
    var pattern = /(-?\d+)(\d{3})/;
    while (pattern.test(x));
    x = x.replace(pattern, "$1,$2");
    return x;
}

function updateSelItemNum()
{
    var tabId = $('.tabId').val();
    if ($('.tab-content').length)
    {
        if ($('#tabs-' + tabId + ' .cb-element').length == $('#tabs-' + tabId + ' .cb-element:checked').length && $('#tabs-' + tabId + ' .cb-element').length)
        {
            $('#tabs-' + tabId + ' .checkAll').prop({
                checked: true,
                indeterminate: false
            });
            if ($('#check_select').length) $('#check_select').val(1);
        }
        else if ($('#tabs-' + tabId + ' .cb-element:checked').length)
        {
            $('#tabs-' + tabId + ' .checkAll').prop({
                checked: true,
                indeterminate: true
            });
            if ($('#check_select').length) $('#check_select').val(1);
        }
        else
        {
            $('#tabs-' + tabId + ' .checkAll').prop({
                checked: false,
                indeterminate: false
            });
            if ($('#check_select').length) $('#check_select').val('');
        }
    }
    else
    {
        if ($('.cb-element').length == $('.cb-element:checked').length && $('.cb-element').length)
        {
            $('.checkAll').prop({
                checked: true,
                indeterminate: false
            });
            if ($('#check_select').length) $('#check_select').val(1);
        }
        else if ($('.cb-element:checked').length)
        {
            $('.checkAll').prop({
                checked: true,
                indeterminate: true
            });
            if ($('#check_select').length) $('#check_select').val(1);
        } else {
            $('.checkAll').prop({
                checked: false,
                indeterminate: false
            });
            if ($('#check_select').length) $('#check_select').val('');
        }
    }
    if ($('tr .highlight').length)
    {
        if ($('.cb-element:checked').length) 
        {
            $('.commandDiv').show().animate({
                top: '-1px'
            });
        }
        else
        {
            $('.commandDiv').animate({
                top: '-49px'
            }).hide();
        }
        $('.selectedItem').html($('.cb-element:checked').length);
    }
}

function DocSo3ChuSo(baso)
{
    var tram;
    var chuc;
    var donvi;
    var KetQua = "";
    tram = parseInt(baso / 100);
    chuc = parseInt((baso % 100) / 10);
    donvi = baso % 10;
    if (tram == 0 && chuc == 0 && donvi == 0) return "";
    if (tram != 0)
    {
        KetQua += ChuSo[tram] + " trăm ";
        if ((chuc == 0) && (donvi != 0)) KetQua += " linh ";
    }
    if ((chuc != 0) && (chuc != 1))
    {
        KetQua += ChuSo[chuc] + " mươi";
        if ((chuc == 0) && (donvi != 0)) KetQua = KetQua + " linh ";
    }
    if (chuc == 1) KetQua += " mười ";
    switch (donvi)
    {
        case 1:
            if ((chuc != 0) && (chuc != 1)) KetQua += " mốt ";
            else KetQua += ChuSo[donvi];
        break;
        case 5:
            if (chuc == 0) KetQua += ChuSo[donvi];
            else KetQua += " lăm ";
        break;
        default:
            if (donvi != 0) KetQua += ChuSo[donvi];
        break;
    }
    return KetQua;
}

function DocTienBangChu(SoTien)
{
    var lan = 0;
    var i = 0;
    var so = 0;
    var KetQua = "";
    var tmp = "";
    var ViTri = new Array();
    if (SoTien < 0) return "Số tiền âm !";
    if (SoTien == 0) return "Không đồng !";
    if (SoTien > 0) so = SoTien;
    else so = -SoTien;
    if (SoTien > 8999999999999999) return "Số quá lớn!";
    ViTri[5] = Math.floor(so / 1000000000000000);
    if (isNaN(ViTri[5])) ViTri[5] = "0";
    so = so - parseFloat(ViTri[5].toString()) * 1000000000000000;
    ViTri[4] = Math.floor(so / 1000000000000);
    if (isNaN(ViTri[4])) ViTri[4] = "0";
    so = so - parseFloat(ViTri[4].toString()) * 1000000000000;
    ViTri[3] = Math.floor(so / 1000000000);
    if (isNaN(ViTri[3])) ViTri[3] = "0";
    so = so - parseFloat(ViTri[3].toString()) * 1000000000;
    ViTri[2] = parseInt(so / 1000000);
    if (isNaN(ViTri[2])) ViTri[2] = "0";
    ViTri[1] = parseInt((so % 1000000) / 1000);
    if (isNaN(ViTri[1])) ViTri[1] = "0";
    ViTri[0] = parseInt(so % 1000);
    if (isNaN(ViTri[0])) ViTri[0] = "0";
    if (ViTri[5] > 0) lan = 5;
    else if (ViTri[4] > 0) lan = 4;
    else if (ViTri[3] > 0) lan = 3;
    else if (ViTri[2] > 0) lan = 2;
    else if (ViTri[1] > 0) lan = 1;
    else lan = 0;
    for (i = lan; i >= 0; i--)
    {
        tmp = DocSo3ChuSo(ViTri[i]);
        KetQua += tmp;
        if (ViTri[i] > 0) KetQua += Tien[i];
        if ((i > 0) && (tmp.length > 0)) KetQua += ',';
    }
    if (KetQua.substring(KetQua.length - 1) == ',') KetQua = KetQua.substring(0, KetQua.length - 1);
    KetQua = KetQua.substring(1, 2).toUpperCase() + KetQua.substring(2) + ' đồng';
    return KetQua;
}

function show_empty_data()
{
    if ($('.tab-content').length)
    {
        var colspan = $('.mainTable .tab-pane.active tr td.head').length;
        $('.mainTable .tab-pane.active table').append('<tr><td class="fr center" colspan="'+ colspan +'" style="height:100px; font-size:16px"><span class="small" style="color: red;"><strong>Không có dữ liệu!</strong></span></td></tr>');
    }
    else
    {
        var colspan = $('.mainTable tr td.head').length;
        $('.mainTable table').append('<tr><td class="fr center" colspan="'+ colspan +'" style="height:100px; font-size:16px"><span class="small" style="color: red;"><strong>Không có dữ liệu!</strong></span></td></tr>');
    }
}

function makeDragOrder(tab, cat, field, orderby, ordermode)
{
    if (cat == null) cat = '';
    if (field == null) field = '';
    if (orderby == null) orderby = '';
    if (ordermode == null) ordermode = '';
    if ($('.tab-content').length)
    {
        $('#mainTable-' + tab + ' .tab-content table').tableDnD({
            onDragClass: 'myDragClass',
            onDrop: function(table, row) {
                var cat = $(table).parent().data('cat');
                var flagChange = 0;
                var rows = table.tBodies[0].rows;
                var debugStr = "Đã di chuyển: " + $(row).attr('name');
                var IDs = "";
                for (var i = 0; i < rows.length; i++)
                {
                    IDs += rows[i].id;
                    if (i < rows.length - 1 && i > 0) IDs += ",";
                    $('#Priority_' + rows[i].id).val(i);
                    $('.STT_' + rows[i].id).html(i);
                }
                if ($('.STT_' + row.id).html() != $('#Old_' + row.id).val()) flagChange = 1;
                if (flagChange)
                {
                    showProcess();
                    $.ajax({
                        url: site_url + 'ajax/sort_order',
                        type: 'POST',
                        cache: false,
                        data: {
                            IDs: IDs,
                            cat: cat,
                            field: field,
                            orderby: orderby,
                            ordermode: ordermode,
                            table: tab
                        },
                        success: function(string) {
                            showNoti((type ? type + ': ' : '') + $(row).attr('name'), 'Cập nhập vị trí thành công', 'Ok');
                            for (var i = 0; i < rows.length; i++) $('#Old_' + rows[i].id).val(i);
                        }
                    });
                }
                $('#mainTable-' + tab + ' .tab-content table tr').css('cursor', 'auto');
            }
        });
    }
    else
    {
        $('#mainTable-' + tab).tableDnD({
            onDragClass: 'myDragClass',
            onDrop: function(table, row) {
                var flagChange = 0;
                var rows = table.tBodies[0].rows;
                var debugStr = "Đã di chuyển: " + $(row).attr('name');
                var IDs = "";
                for (var i = 0; i < rows.length; i++)
                {
                    IDs += rows[i].id;
                    if (i < rows.length - 1 && i > 0) IDs += ",";
                    $('#Priority_' + rows[i].id).val(i);
                    $('.STT_' + rows[i].id).html(i);
                }
                if ($('.STT_' + row.id).html() != $('#Old_' + row.id).val()) flagChange = 1;
                if (flagChange) {
                    showProcess();
                    $.ajax({
                        url: site_url + 'ajax/sort_order',
                        type: 'POST',
                        cache: false,
                        data: {
                            IDs: IDs,
                            cat: cat,
                            field: field,
                            orderby: orderby,
                            ordermode: ordermode,
                            table: tab
                        },
                        success: function(string) {
                            showNoti((type ? type + ': ' : '') + $(row).attr('name'), 'Cập nhập vị trí thành công', 'Ok');
                            for (var i = 0; i < rows.length; i++) $('#Old_' + rows[i].id).val(i);
                        }
                    });
                }
                $('#mainTable-' + tab + ' tr').css('cursor', 'auto');
            }
        });
    }
}

function nestable(maxDepth)
{
    if (maxDepth == null) maxDepth = 10;
    var updateNestable = function(e) {
        var list   = e.length ? e : $(e.target),
            output = list.data('output');
        if (window.JSON)
        {
            jsonSort = window.JSON.stringify(list.nestable('serialize'));
            if (jsonSort != $('#jsonSort').val())
            {
                output.val(jsonSort);
                $.post(
                    site_url + 'ajax/sort_nestable',
                    {dataSort: jsonSort, tableSort: $('#act').val()}
                );
            }
        }
        else
        {
            output.val('JSON browser support required for this demo.');
        }
    };
    $('#nestable').nestable(
        {maxDepth: maxDepth}
    ).on('change', updateNestable);
    updateNestable($('#nestable').data('output', $('#jsonSort')));
}

function showErrOfField(divErr, inputId, timeOut)
{
    if (timeOut == null) timeOut = 3000;
    $('#' + inputId).focus();
    $('div.' + divErr).fadeIn();
    setTimeout(function() {
        $('div.' + divErr).fadeOut('slow')
    }, timeOut);
    return false;
}

function changeImage(fileInput)
{
    fileInput.change(function(e)
    {
        var ext = fileInput.val().split('.').pop();
        if (ext == 'jpg' || ext == 'png' || ext == 'gif')
        {
            if (fileInput.parent().find('.flash-div').length)
            {
                fileInput.parent().find('.flash-div').hide();
            }
            var previewImg = fileInput.parent().find('.preview_img');
            previewImg.fadeOut();
            var file = e.originalEvent.srcElement.files[0];
            var reader = new FileReader();
            reader.onloadend = function() {
                previewImg.attr('src', reader.result);
                previewImg.prev('i').hide();
                previewImg.fadeIn(1000);
                if (fileInput.parent().find('.delImageIcon').length)
                {
                    fileInput.parent().find('.delImageIcon').hide();
                }
                fileInput.parent().find('.file-name div').fadeIn().children('p').text(fileInput.val().split('\\').pop());
                fileInput.parent().find('.file-name div i').click(function() {
                    fileInput.replaceWith(fileInput = fileInput.clone(true));
                    previewImg.fadeOut(function() {
                        previewImg.prev('i').fadeIn();
                        fileInput.parent().find('.file-name div').fadeOut();
                    });
                });
            };
            reader.readAsDataURL(file);
        }
        else if (ext == 'swf')
        {
            if (fileInput.parent().find('.flash-div').length)
            {
                var flashDiv = fileInput.parent().find('.flash-div');
                var previewImg = fileInput.parent().find('.preview_img');
                previewImg.fadeOut(function() {
                    previewImg.prev('i').hide();
                });
                flashDiv.find('.flash-file').html('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="120px" height="88px" align="middle" __idm_id__="19984385"><param name="movie" value=""><param name="wmode" value="transparent"><embed src="" quality="best" wmode="transparent" width="120px" height="88px" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" __idm_id__="19984386"></object>');
                var flashObj = flashDiv.find('.flash-file object param[name="movie"]');
                var flashEmb = flashDiv.find('.flash-file object embed');                
                var file = e.originalEvent.srcElement.files[0];
                var reader = new FileReader();
                reader.onloadend = function() {
                    flashEmb.attr('value', reader.result);
                    flashEmb.attr('src', reader.result);
                    flashDiv.show();
                    if (fileInput.parent().find('.delImageIcon').length)
                    {
                        fileInput.parent().find('.delImageIcon').hide();
                    }
                    fileInput.parent().find('.file-name div').fadeIn().children('p').text(fileInput.val().split('\\').pop());
                    fileInput.parent().find('.file-name div i').click(function() {
                        fileInput.replaceWith(fileInput = fileInput.clone(true));
                        flashDiv.fadeOut(function() {
                            previewImg.prev('i').fadeIn();
                            fileInput.parent().find('.file-name div').fadeOut();
                        });
                    });
                };
                reader.readAsDataURL(file);
            }
        }
        else
        {
            fileInput.parent().find('.file-name div').fadeIn().children('p').text(fileInput.val().split('\\').pop());
            fileInput.parent().find('.file-name div i').click(function() {
                fileInput.replaceWith(fileInput = fileInput.clone(true));
                fileInput.parent().find('.file-name div').fadeOut();
            });
        }
    });
}

function showImage(src, dst)
{
    var html = '<div style="clear: both;">';
    html += '<div class="image-wrap fl"><i class="icon glyphicons remove"></i><input data-file="' + src + '" value="' + dst.split('/').pop() + '" type="hidden" name="images[]" /><div class="image-small"><div class="no-image"><img src="' + dst + '" /></div></div></div>';
    if (table == 'interfaces') {
        html += '<div class="image-list-ele fl">Fade effect<br /><input value="" type="text" name="fade_effect[]" style="width: 30px !important; text-align: right;" /><div class="note">px</div></div><div class="image-list-ele fl">Move offset<br /><input value="300" type="text" name="move_offset[]" style="width: 30px !important; text-align: right;" /><div class="note">px</div></div><div class="image-list-ele fl">Move effect<br /><input value="" type="text" name="move_effect[]" style="width: 50px !important;" /><div class="note">left / right / top / bottom</div></div><div class="image-list-ele fl">Speed<br /><input value="900" type="text" name="speed[]" style="width: 30px !important; text-align: right;" /><div class="note">mili giây</div></div><div style="clear: both;"></div>';
    }
    else {
        html += '<div class="fl"><textarea style="width: 450px; height: 75px;" name="images_des[]"></textarea></div>';
    }
    html += '</div>';
    $('#images-list').append(html);
}

function checkUpdateFrm()
{
    $('#updateFrm').bind('submit', function() {
        var err = 0;
        $('#updateFrm [data-required="1"]').each(function() {
            var inputEle = $(this);
            var value = $(this).val();
            var id = $(this).attr('id');
            var trEle = inputEle.parent().parent();
            if (trEle.prop('tagName').toUpperCase() == 'TD')
            {
                trEle = inputEle.parent().parent().parent();
            }
            if ((value == '' || value == null) && !trEle.hasClass('hide'))
            {
                err = 1;
                if ($('.tab-content').length)
                {
                    var tabEle = inputEle.parent().parent().parent().parent().parent();
                    if (tabEle.is(':hidden'))
                    {
                        var errMes = inputEle.parent().find('.errordiv').text();
                        showNoti(errMes, 'Lỗi nhập liệu', 'Err');
                    }
                    else
                    {
                        showErrOfField(id, id);
                    }
                }
                else
                {
                    showErrOfField(id, id);
                }
                return false;
            }
        });
        if (err == 1)
        {
            return false;
        }
        else
        {
            $('.btn').attr('disabled', true);
            if ($('#updateFrm .mceEditor').length)
            {
                tinyMCE.EditorManager.triggerSave();
            }
            showProcess(1);
        }
        if ($('#do').val() == 'compose')
        {
            $.cookie('proids', '');
        }
    });

    $('#updateFrm1').bind('submit', function() {
        var err = 0;
        $('#updateFrm1 [data-required="1"]').each(function() {
            var inputEle = $(this);
            var value = $(this).val();
            var id = $(this).attr('id');
            var trEle = inputEle.parent().parent();
            if (trEle.prop('tagName').toUpperCase() == 'TD')
            {
                trEle = inputEle.parent().parent().parent();
            }
            if ((value == '' || value == null) && !trEle.hasClass('hide'))
            {
                err = 1;
                if ($('.tab-content').length)
                {
                    var tabEle = inputEle.parent().parent().parent().parent().parent();
                    if (tabEle.is(':hidden'))
                    {
                        var errMes = inputEle.parent().find('.errordiv').text();
                        showNoti(errMes, 'Lỗi nhập liệu', 'Err');
                    }
                    else
                    {
                        showErrOfField(id, id);
                    }
                }
                else
                {
                    showErrOfField(id, id);
                }
                return false;
            }
        });
        if (err == 1)
        {
            return false;
        }
        else
        {
            $('.btn').attr('disabled', true);
            if ($('#updateFrm1 .mceEditor').length)
            {
                tinyMCE.EditorManager.triggerSave();
            }
            showProcess(1);
        }
    });

    $('#updateFrm2').bind('submit', function() {
        var err = 0;
        $('#updateFrm2 [data-required="1"]').each(function() {
            var inputEle = $(this);
            var value = $(this).val();
            var id = $(this).attr('id');
            var trEle = inputEle.parent().parent();
            if (trEle.prop('tagName').toUpperCase() == 'TD')
            {
                trEle = inputEle.parent().parent().parent();
            }
            if ((value == '' || value == null) && !trEle.hasClass('hide'))
            {
                err = 1;
                if ($('.tab-content').length)
                {
                    var tabEle = inputEle.parent().parent().parent().parent().parent();
                    if (tabEle.is(':hidden'))
                    {
                        var errMes = inputEle.parent().find('.errordiv').text();
                        showNoti(errMes, 'Lỗi nhập liệu', 'Err');
                    }
                    else
                    {
                        showErrOfField(id, id);
                    }
                }
                else
                {
                    showErrOfField(id, id);
                }
                return false;
            }
        });
        if (err == 1)
        {
            return false;
        }
        else
        {
            $('.btn').attr('disabled', true);
            if ($('#updateFrm2 .mceEditor').length)
            {
                tinyMCE.EditorManager.triggerSave();
            }
            showProcess(1);
        }
    });
}

function closeopaDiv()
{
    $('.opaDiv').fadeOut();
    $('.addDiv').fadeOut();
}

function addThuoctinh(id, cat)
{
    if (id == null) id = '';
    if (cat == null) cat = $('.tabId').val();
    $.ajax({
        url: site_url + 'product_properties/update',
        type: 'POST',
        cache: false,
        data: {
            id: id,
            cat: cat
        },
        success: function(html) {
            $('#myModal .modal-body').html(html);
            if (cat != 'color')
            {
                $('input[type="color"]').hide();
                $('#name_vn, #name_en, #tr_en').show();
            }
            else
            {
                $('#name_vn, #name_en, #tr_en').hide();
                $('input[type="color"]').show();
                $('#color').change(function() {
                    $('#name_vn').val($('#color').val());
                });
            }
            $('#cat').change(function() {
                var cat = $(this).val();
                if (cat != 'color') {
                    $('input[type="color"]').hide();
                    $('#name_vn, #name_en, #tr_en').show();
                } else {
                    $('#name_vn, #name_en, #tr_en').hide();
                    $('input[type="color"]').show();
                    $('#color').change(function() {
                        $('#name_vn').val($('#color').val());
                    });
                }
            });
            $('#submitBtn').bind('click', function() {
                $('#updateFrm').submit();
            });
            $('#myModal').modal('show');
            checkUpdateFrm();
        }
    });
}

function updateProduct(id)
{
    $('.opaDiv').fadeIn('fast');
    $('.addDiv').fadeIn('fast');
    $('.addDiv div').html('<div style="padding:10px"><img src="img/spinner-mini.gif" /></div>');
    $('.addDiv').css({
        top: ($(window).height() - $('.addDiv').height()) / 2 - 32 + 'px',
        left: ($(window).width() - $('.addDiv').width()) / 2 - 32 + 'px'
    });
    $.ajax({
        url: site_url + 'products/quick_edit',
        type: 'POST',
        cache: false,
        data: {
            id: id,
            sid: $('#sid').val(),
            act: $('#act').val(),
            rowstart: $('#rowstart').val(),
            search_key: $('#search_key').val(),
        },
        success: function(string) {
            $('.addDiv div').html(string);
            $('.addDiv').css({
                top: ($(window).height() - $('.addDiv').height()) / 2 - 32 + 'px',
                left: ($(window).width() - $('.addDiv').width()) / 2 - 32 + 'px'
            });
            $('#closeForm').bind('click', closeopaDiv);
            $('#submitBtn').bind('click', function() {
                $.post(
                    site_url + 'products/quick_save',
                    $('#updateFrm').serializeArray(),
                    function(data, textStatus, jqXHR) {
                        if (data == '0') {
                            showNoti('Sản phẩm: ' + $('tr#' + id).attr('name'), 'Cập nhập phẩm thất bại', 'Err');
                        } else {
                            $('#name_' + id).html($('#name_vn').val());
                            $('#cat_' + id).html($('#cat option[value="' + $('#cat').val() + '"]').text());
                            $('tr#id' + id).attr('name', $('#name_vn').val());
                            showNoti('Sản phẩm: ' + $('#name_vn').val(), 'Cập nhập sản phẩm thành công', 'Ok');
                            closeopaDiv();
                        }
                    }
                );
                return false;
            });
        }
    });
}

function del_restore(table, id, mode, name, show_mes)
{
    if (show_mes == null) show_mes = 1;
    if (show_mes == 1) showProcess();
    $.ajax({
        url: site_url + 'ajax/del_restore_item',
        type: 'POST',
        cache: false,
        data: {
            table: table,
            id: id,
            mode: mode,
            name: name
        },
        success: function(string)
        {
            if (show_mes == 1)
            {
                if (string == '2')
                {
                    showNoti(type + ': ' + name + ' (Có chứa sản phẩm)', 'Hệ thống không thể xóa', 'Err');
                } else if (string == '3')
                {
                    showNoti(type + ': ' + name + ' (Có chứa cấp con)', 'Hệ thống không thể xóa', 'Err');
                } else {
                    showNoti(type + ': ' + name, 'Đã ' + (mode == 'del' ? 'xóa' : 'khôi phục') + ' thành công', 'Ok');
                    if ($('.delRestoreLink[data-id="' + id + '"] .no-remove').length > 0)
                    {
                        if (mode == 'del')
                        {
                            $('.delRestoreLink[data-id="' + id + '"] .glyphicons').removeClass('bin').addClass('refresh');
                        }
                        else
                        {
                            $('.delRestoreLink[data-id="' + id + '"] .glyphicons').removeClass('refresh').addClass('bin');
                        }
                    }
                    else
                    {
                        $('tr#' + id).remove();
                    }
                }
            }
            else
            {
                if (string == '1') $('tr#' + id).remove();
            }
            if ($('.delRestoreLink[data-id="' + id + '"] .no-remove').length == 0 && string == '1')
            {
                if ($('.tab-content').length)
                {
                    for (var i = 0; i < highlight; i++)
                    {
                        $('.tab-pane.active .stt:eq('+ i +')').html(i + 1 + rowstart);
                    }
                    if ($('.tab-pane.active .highlight').length == 0) show_empty_data();
                }
                else
                {
                    for (var i = 0; i < highlight; i++)
                    {
                        $('.stt:eq('+ i +')').html(i + 1 + rowstart);
                    }
                    if ($('.highlight').length == 0) show_empty_data();
                }
            }
        }
    });
}

function remove(table, id, name, show_mes)
{
    if (show_mes == null) show_mes = 1;
    if (show_mes == 1) showProcess();
    $.ajax({
        url: site_url + 'ajax/del_restore_item',
        type: 'POST',
        cache: false,
        data: {
            table: table,
            id: id,
            mode: 'remove',
            name: name
        },
        success: function(string) {
            if (string == '0')
            {
                if (show_mes == 1) showNoti(type + ': ' + name, 'Không thể xóa vĩnh viễn', 'Err');
            }
            else if (string == '3')
            {
                if (show_mes == 1) showNoti(type + ': ' + name + ' (Có chứa cấp con)', 'Không thể xóa vĩnh viễn', 'Err');
            }
            else if (string == '2')
            {
                if (show_mes == 1) showNoti(type + ': ' + name + ' (Có chứa sản phẩm)', 'Không thể xóa vĩnh viễn', 'Err');
            }
            else
            {
                if (show_mes == 1) showNoti(type + ': ' + name, 'Xóa vĩnh viễn thành công', 'Ok');
                if ($('tr#' + id).length)
                {
                    $('tr#' + id).remove();
                }
                else if ($('.dd-item[data-id="'+id+'"]').length)
                {
                    $('.dd-item[data-id="'+id+'"]').remove();
                }
                if ($('.tab-content').length)
                {
                    for (var i = 0; i < highlight; i++)
                    {
                        $('.tab-pane.active .stt:eq('+ i +')').html(i + 1 + rowstart);
                    }
                    if ($('.tab-pane.active .highlight').length == 0) show_empty_data();
                } else {
                    for (var i = 0; i < highlight; i++)
                    {
                        $('.stt:eq('+ i +')').html(i + 1 + rowstart);
                    }
                    if ($('.highlight').length == 0 && $('.dd-item').length == 0) show_empty_data();
                }
            }
        }
    });
}

function read_xls(files)
{
    $('#list_email').html('<tr><td class="fr center" colspan="6"><div style="padding:10px"><img src="img/spinner-mini.gif" /></div></td></tr>');
    $.ajax({
        url: site_url + 'subscribers/read_xls',
        type: 'POST',
        cache: false,
        data: {
            files: files
        },
        success: function(string) {
            $('#list_email').html(string);
            $('tr .highlightNoClick').bind('click', function() {
                if ($(this).hasClass('selected'))
                {
                    $(this).removeClass('selected');
                    $(this).find('input.cb-element').prop('checked', false);
                }
                else
                {
                    $(this).addClass('selected');
                    $(this).find('input.cb-element').prop('checked', true);
                }
                updateSelItemNum();
            });
            $('.removeEmail').bind('click', function() {
                $(this).parent().parent().fadeOut(function() {
                    $(this).remove();
                    var rows = $('.highlightNoClick');
                    for (var i = 0; i < rows.length; i++)
                    {
                        $('.STT_' + rows[i].id).html(i + 1);
                    }
                });
            });
            setTimeout(function() {
                $('#eventsmessage').html('');
                $('.ajax-file-upload-statusbar').fadeOut('show');
            }, 5000);
        }
    });
}

function list_email(rowstart)
{
    $('#list_email').html('<tr><td class="fr center" colspan="6"><div style="padding:10px"><img src="img/spinner-mini.gif" /></div></td></tr>');
    $.ajax({
        url: site_url + 'newsletter/list_email',
        type: 'POST',
        cache: false,
        data: {
            show: 1,
            city: '',
            sex: '',
            rowstart: rowstart
        },
        success: function(string) {
            $('#list_email').html(string);
            $('tr .highlightNoClick').bind('click', function() {
                var emails = $.cookie('emails');
                var id = $(this).find('input.cb-element').val();
                if ($(this).hasClass('selected'))
                {
                    $(this).removeClass('selected');
                    $(this).find('input.cb-element').prop('checked', false);
                    emails = emails.replace(',' + id, '');
                }
                else
                {
                    $(this).addClass('selected');
                    $(this).find('input.cb-element').prop('checked', true);
                    emails = emails + ',' + id;
                    $('#check_select').val(1);
                }
                $.cookie('emails', emails);
                updateSelItemNum();
            });
            $('.cb-element').on('change', function() {
                var emails = $.cookie('emails');
                var id = $(this).find('input.cb-element').val();
                if ($(this).is(':checked'))
                {
                    emails = emails + ',' + id;
                    $('#check_select').val(1);
                }
                else
                {
                    emails = emails.replace(',' + id, '');
                }
                $.cookie('emails', emails);
                updateSelItemNum();
            });
            $('.checkAll').on('change', function() {
                var emails = $.cookie('emails');
                if ($(this).is(':checked')) {
                    $('.cb-element:not(:checked)').each(function() {
                        $(this).prop('checked', true);
                        $('.highlightNoClick').addClass('selected');
                        var id = $(this).val();
                        emails = emails + ',' + id;
                        $('#check_select').val(1);
                    });
                } else {
                    $('.cb-element').each(function() {
                        $(this).prop('checked', false);
                        $('.highlightNoClick').removeClass('selected');
                        var id = $(this).val();
                        emails = emails.replace(',' + id, '');
                        $('#check_select').val('');
                    });
                }
                $.cookie('emails', emails);
            });
            $('.page_list a').click(function() {
                var rowstart = $(this).data('rowstart');
                list_email(rowstart);
            });
            updateSelItemNum();
            $('.list_email').slimScroll({
                size: '4px',
                color: '#333',
                distance: '2px',
                height: '495px',
            });
        }
    });
}

function list_product(rowstart, cat, q, proids)
{
    $('#list_product').html('<tr><td class="fr center" colspan="6"><div style="padding:10px"><img src="img/spinner-mini.gif" /></div></td></tr>');
    $.ajax({
        url: site_url + 'newsletter/list_product',
        type: 'POST',
        cache: false,
        data: {
            show: 1,
            cat: cat,
            q: q,
            rowstart: rowstart,
            proids: proids
        },
        success: function(string) {
            $('#list_product').html(string);
            $('tr .highlightNoClick').click(function() {
                var proids = $.cookie('proids');
                var id = $(this).find('input.cb-element').val();
                if ($(this).hasClass('selected'))
                {
                    $(this).removeClass('selected');
                    $(this).find('input.cb-element').prop('checked', false);
                    proids = proids.replace(',' + id, '');
                }
                else
                {
                    $(this).addClass('selected');
                    $(this).find('input.cb-element').prop('checked', true);
                    proids = proids + ',' + id;
                }
                $.cookie('proids', proids);
                if ($('#proList').length > 1) load_products();
                updateSelItemNum();
            });
            $('.cb-element').on('change', function() {
                var proids = $.cookie('proids');
                var id = $(this).val();
                if ($(this).is(':checked'))
                {
                    proids = proids + ',' + id;
                }
                else
                {
                    proids = proids.replace(',' + id, '');
                }
                $.cookie('proids', proids);
                if ($('#proList').length > 1) load_products();
                updateSelItemNum();
            });
            $('.checkAll').on('change', function() {
                var proids = $.cookie('proids');
                if ($(this).is(':checked')) {
                    $('.cb-element:not(:checked)').each(function() {
                        $(this).prop('checked', true);
                        $('.highlightNoClick').addClass('selected');
                        var id = $(this).val();
                        proids = proids + ',' + id;
                        $('#check_select').val(1);
                    });
                } else {
                    $('.cb-element').each(function() {
                        $(this).prop('checked', false);
                        $('.highlightNoClick').removeClass('selected');
                        var id = $(this).val();
                        proids = proids.replace(',' + id, '');
                        $('#check_select').val('');
                    });
                }
                $.cookie('proids', proids);
            });
            $('.page_list a').click(function() {
                var rowstart = $(this).data('rowstart');
                list_product(rowstart, cat, q, $.cookie('proids'));
            });
            updateSelItemNum();
            $('.slimScroll').slimScroll({
                size: '4px',
                color: '#333',
                distance: '2px',
                height: '525px',
            });
        }
    });
}

function list_article(rowstart, cat, q, newsids, articles_added)
{
    $('#list_article').html('<tr><td class="fr center" colspan="6"><div style="padding:10px"><img src="img/spinner-mini.gif" /></div></td></tr>');
    $.ajax({
        url: site_url + 'products/list_article',
        type: 'POST',
        cache: false,
        data: {
            show: 1,
            cat: cat,
            q: q,
            rowstart: rowstart,
            newsids: newsids,
            articles_added: articles_added
        },
        success: function(string) {
            $('#list_article').html(string);
            $('tr .highlightNoClick').click(function() {
                var newsids = $.cookie('newsids');
                var id = $(this).find('input.cb-element').val();
                if ($(this).hasClass('selected'))
                {
                    $(this).removeClass('selected');
                    $(this).find('input.cb-element').prop('checked', false);
                    newsids = newsids.replace(',' + id, '');
                }
                else
                {
                    $(this).addClass('selected');
                    $(this).find('input.cb-element').prop('checked', true);
                    newsids = newsids + ',' + id;
                }
                $.cookie('newsids', newsids.replace(/,undefined/g, ''));
                updateSelItemNum();
            });
            $('.cb-element').on('change', function() {
                var newsids = $.cookie('newsids');
                var id = $(this).val();
                if ($(this).is(':checked'))
                {
                    newsids = newsids + ',' + id;
                }
                else
                {
                    newsids = newsids.replace(',' + id, '');
                }
                $.cookie('newsids', newsids.replace(/,undefined/g, ''));
                updateSelItemNum();
            });
            $('.checkAll').on('change', function() {
                var newsids = $.cookie('newsids');
                if ($(this).is(':checked')) {
                    $('.cb-element:not(:checked)').each(function() {
                        $(this).prop('checked', true);
                        $('.highlightNoClick').addClass('selected');
                        var id = $(this).val();
                        newsids = newsids + ',' + id;
                        $('#check_select').val(1);
                    });
                } else {
                    $('.cb-element').each(function() {
                        $(this).prop('checked', false);
                        $('.highlightNoClick').removeClass('selected');
                        var id = $(this).val();
                        newsids = newsids.replace(',' + id, '');
                        $('#check_select').val('');
                    });
                }
                $.cookie('newsids', newsids);
            });
            $('.page_list a').click(function() {
                var rowstart = $(this).data('rowstart');
                list_article(rowstart, cat, q, $.cookie('newsids'), articles_added);
            });
            updateSelItemNum();
            $('.slimScroll').slimScroll({
                size: '4px',
                color: '#333',
                distance: '2px',
                height: '250px',
            });
        }
    });
}

function load_products()
{
    $('#proList').html('<div style="padding:10px"><img src="img/spinner-mini.gif" /></div>');
    $.ajax({
        url: site_url + 'newsletter/load_products',
        type: 'POST',
        cache: false,
        data: {
            show: 1,
            cat: $('#cat').val(),
            rowstart: rowstart
        },
        success: function(string) {
            $('#proList').html(string);
            $('.slimScroll').slimScroll({
                size: '4px',
                color: '#333',
                distance: '2px',
                height: '525px',
            });
        }
    });
}

function util_table(op)
{
    if (op == 'check') {
        title = 'Kiểm tra bảng';
    }
    if (op == 'analyze')
    {
        title = 'Phân tích bảng';
    }
    if (op == 'repair')
    {
        title = 'Chỉnh sửa bảng';
    }
    if (op == 'optimize')
    {
        title = 'Tối ưu bảng';
    }
    var highlight = $('.tab-pane.active .highlight').length;
    var table_name = $('.highlight:eq('+ table_index +')').attr('name');
    $.post(
        site_url + 'hosting_status/util_table',
        { table_name: table_name, op: op },
        function(data, textStatus, jqXHR) {
            if (data == 'Error')
            {
                showNoti('Bảng: ' + table_name, title + ' thất bại', 'Err');
                $('.highlight:eq('+ table_index +') .status.circle_exclamation_mark').fadeIn();
                $('.status_mes').fadeOut();
                $('.status_mes div span').text('');
            } else{
                w = Math.round((table_index + 1) / highlight * 100);
                $('.status_mes .progress .progress-bar').css({width: w + '%'});
                $('.status_mes.'+ op +' div span').text(table_name);
                $('.status_mes.'+ op).fadeIn();
                $('.highlight:eq('+ table_index +') .status.ok_2').fadeIn();
            }
            table_index = table_index + 1;
            if (table_index < highlight)
            {
                util_table(op);
            }
            else
            {
                showNoti(highlight + ' bảng dữ liệu', title + ' thành công', 'Ok');
                setTimeout(function() {
                    $('.status_mes').fadeOut();
                    $('.status_mes div span').text('');
                    $('.highlight .status').fadeOut();
                }, 5000);
            }
        }
    );
}

function set_mytab(e)
{
    var mytab = $(e).children('a').attr('href').split('-')[1];
    $('.tabId').val(mytab);
    $('.current-tab-name').text($('.dropdown-menu a[href="#tabs-' + mytab + '"]').text());
    $.cookie('mytab-'+$('#act').val()+'-'+$('#do').val(), mytab);
}

String.prototype.insert = function(index, string)
{
    if (index > 0)
    {
        return this.substring(0, index) + string + this.substring(index, this.length);
    }
    else
    {
        return string + this;
    }
}

String.prototype.replaceAll = function(strTarget, strSubString)
{
    var strText = this;
    var intIndexOfMatch = strText.indexOf(strTarget);
    while (intIndexOfMatch != -1)
    {
        strText = strText.replace(strTarget, strSubString);
        intIndexOfMatch = strText.indexOf(strTarget);
    }
    return (strText);
}


function separate_money(e)
{
    var moneyString = e.val();
    if (moneyString.length > 3)
    {
        moneyString = moneyString.replaceAll(',', '');
        for (var i = moneyString.length - 3; i > 0; i = i - 3)
        {
            moneyString = moneyString.insert(i, ',');
        }
        $(e).val(moneyString);
    }
}

function round(value, precision, mode)
{
    var m, f, isHalf, sgn;
    precision |= 0;
    m = Math.pow(10, precision);
    value *= m;
    sgn = (value > 0) | -(value < 0);
    isHalf = value % 1 === 0.5 * sgn;
    f = Math.floor(value);
    if (isHalf)
    {
        switch (mode) {
            case 'PHP_ROUND_HALF_DOWN':
                value = f + (sgn < 0);
            break;
            case 'PHP_ROUND_HALF_EVEN':
                value = f + (f % 2 * sgn);
            break;
            case 'PHP_ROUND_HALF_ODD':
                value = f + !(f % 2);
            break;
            default:
                value = f + (sgn > 0);
        }
    }
    return (isHalf ? value : Math.round(value)) / m;
}

function addCommas(str) {
    var amount = new String(str);
    amount = amount.split("").reverse();
    var output = "";
    for (var i = 0; i <= amount.length - 1; i++) {
        output = amount[i] + output;
        if ((i + 1) % 3 == 0 && (amount.length - 1) !== i) output = ',' + output;
    }
    return output;
}

function print_barcode_product(rowstart, cat, q, proids)
{
    $('#list_product').html('<tr><td class="fr center" colspan="6"><div style="padding:10px"><img src="img/spinner-mini.gif" /></div></td></tr>');
    $.ajax({
        url: site_url + 'print_barcode/list_product',
        type: 'POST',
        cache: false,
        data: {
            show: 1,
            cat: cat,
            q: q,
            rowstart: rowstart,
            proids: proids
        },
        success: function(string) {
            $('#list_product').html(string);
            $('td.click').click(function() {
                var proids = $.cookie('bcproids');
                var id = $(this).parent().find('input.cb-element').val();
                if ($(this).parent().hasClass('selected'))
                {
                    $(this).parent().removeClass('selected');
                    $(this).parent().find('input.cb-element').prop('checked', false);
                    $('#qty'+id).val(0);
                    proids = proids.replace(',' + id, '');
                }
                else
                {
                    $(this).parent().addClass('selected');
                    $(this).parent().find('input.cb-element').prop('checked', true);
                    $('#qty'+id).val(1);
                    proids = proids + ',' + id;
                }
                $.cookie('bcproids', proids);
                updateSelItemNum();
            });
            $('.cb-element').on('change', function() {
                var proids = $.cookie('bcproids');
                var id = $(this).val();
                if ($(this).is(':checked'))
                {
                    $('#qty'+id).val(1);
                    proids = proids + ',' + id;
                }
                else
                {
                    $('#qty'+id).val(0);
                    proids = proids.replace(',' + id, '');
                }
                $.cookie('bcproids', proids);
                updateSelItemNum();
            });
            $('.checkAll').on('change', function() {
                var proids = $.cookie('bcproids');
                if ($(this).is(':checked')) {
                    $('.cb-element:not(:checked)').each(function() {
                        $(this).prop('checked', true);
                        $('.highlightNoClick').addClass('selected');
                        var id = $(this).val();
                        $('#qty'+id).val(1);
                        proids = proids + ',' + id;
                        $('#check_select').val(1);
                    });
                } else {
                    $('.cb-element').each(function() {
                        $(this).prop('checked', false);
                        $('.highlightNoClick').removeClass('selected');
                        var id = $(this).val();
                        $('#qty'+id).val(0);
                        proids = proids.replace(',' + id, '');
                        $('#check_select').val('');
                    });
                }
                $.cookie('bcproids', proids);
            });
            $('.page_list a').click(function() {
                var rowstart = $(this).data('rowstart');
                print_barcode_product(rowstart, cat, q, $.cookie('bcproids'));
            });
            updateSelItemNum();
            $('.slimScroll_barcode').slimScroll({
                size: '4px',
                color: '#333',
                distance: '2px',
                height: '435px',
            });
            $('.money').bind('keyup keydown', function() {
                var val = $(this).val();
                $(this).val(accounting.formatMoney(val, '', 0));
            });
        }
    });
}